/**
 * 列表型数据 -> 树形数据
 * @params
 * {list} Array 列表数据
 * {rootValue} Number 根节点的pid
 * */

export const listToTree = (list, rootValue) => {
  // 核心逻辑 ： 遍历列表数据，找到父级部门，递归思想（找规律），生成树形数据
  // 结论:子集部门的pid等于父级部门的id
  const arr = [] // 存储最终的树形数据
  list.forEach(item => {
    if (item.pid === rootValue) {
      // 根据规律查找二级/三级/四级
      // 查找原则：通过父级确定子级，传入父级部门的id
      const children = listToTree(list, item.id)
      // 将子级部门添加到父级部门身
      item.children = children
      arr.push(item)
    }
  })
  // list.forEach(item => {
  //   // 获取一级部门
  //   if (item.pid === rootValue) {
  //     list.forEach(citem => {
  //       // 获取二级部门
  //       if (citem.pid === item.id) {
  //         item.children = item.children || []
  //         item.children.push(citem)
  //       }
  //     })
  //     arr.push(item)
  //   }
  // })
  return arr
}
